package com.init.bootframe.system.service;

import com.init.bootframe.system.vo.BaseDataVO;
import net.sf.json.JSONObject;

import java.util.List;
import java.util.Map;

public interface IBaseDataService {
    /**
     * 根据条件查询基础数据信息
     * @param baseDataVO
     * @return
     */
    public List<BaseDataVO> findBaseDataListByCode(BaseDataVO baseDataVO);

    /**
     * 查询基础数据信息
     *
     * @param baseDataVO
     * @return JSONObject
     */
    public JSONObject findBaseDataList(BaseDataVO baseDataVO);

    /**
     * 添加基础数据
     *
     * @param baseDataVO
     * @return int
     */
    public Map<String, Object> addBaseData(BaseDataVO baseDataVO);

    /**
     * 修改基础数据
     *
     * @param baseDataVO
     * @return int
     */
    public Map<String, Object> updateBaseData(BaseDataVO baseDataVO);

    /**
     * 删除基础数据
     *
     * @param baseDataVO
     * @return int
     */
    public Map<String, Object> deleteBaseData(BaseDataVO baseDataVO);

    /**
     * 根据baseId查询基础数据信息
     *
     * @param baseDataVO
     * @return baseDataVO
     */
    public BaseDataVO findBaseDataInfo(BaseDataVO baseDataVO);

    /**
     * 查询所有有效系统基础数据信息
     *
     * 缓存在redis中
     *
     *
     * @param baseDataVO
     *            参数系统基础数据对象
     * @return 返回消息对象 Map<String, Object>
     */
    public Map<String, Object> refreshSysBaseData(BaseDataVO baseDataVO);

    /**
     * 初始化查询所有有效系统基础数据信息
     *
     * 缓存在redis中
     *
     * 系统加载基础数据之一（不对外开发接口，过滤token认证）
     *
     */
    public void loadSysBaseData() throws Exception;

    /**
     * 查询所有国际化信息
     *
     * 分组缓存（redis）国际化信息
     *
     * 系统加载基础数据之一（不对外开发接口，过滤token认证）
     *
     */
    public void loadLangPropties() throws Exception;
}
